X-Git-Url: https://permondes.de/gitweb/Analog_Engine.git/blobdiff_plain/54bf965f97de8b362cbd0b85440aabbbd861ddc1..f25252dda165cd2fb57a745bcb17df03d5b590f3:/AESL/Damped%20Harmonic%20Oscillator.AESL?ds=sidebyside diff --git a/AESL/Damped Harmonic Oscillator.AESL b/AESL/Damped Harmonic Oscillator.AESL new file mode 100644 index 0000000..12a995e --- /dev/null +++ b/AESL/Damped Harmonic Oscillator.AESL @@ -0,0 +1,39 @@ +IDENTIFICATION DIVISION +PROGRAM-ID Damped_Oscillator + +ENVIRONMENT DIVISION +ENGINE Anabrid-THAT +REQUIRES COEFFICIENT 5 +REQUIRES INTEGRATOR 2 +REQUIRES INVERTER 1 +REQUIRES SUMMER 2 + +DATA DIVISION +OUTPUT OUTPUT.U y +ALIAS COEFFICIENT.1 InitialPosition +ALIAS COEFFICIENT.2 InitialSpeed +ALIAS COEFFICIENT.3 SpringForce +ALIAS COEFFICIENT.4 Damping # linear to speed +ALIAS COEFFICIENT.5 Mass # 1 / mass + +PROGRAM DIVISION +# Colors being used for wiring +# - black: y0 +# - blue: y0’ +# - green: y0’’ +# - yellow: y’’, y’ +# - red: y +-1 -> InitialPosition -> -y0 # -initial position of the mass +-1 -> InitialSpeed -> y0s’ # y’ is scaled to be within -1..+1 ++1, y0s’, y0s’ -> Summer.1 -> y0’ +y’’, IC:y0’ -> INTEGRATOR.1 -> -y’ +-y’,IC:-y0 -> INTEGRATOR.2 -> y +y -> SpringForce -> S*y # springforce times displacement +-y’ -> INVERTER.1 -> y’ +y’ -> Damping -> D*y’ # damping times speed +S*y, D*y’ -> SUMMER.2 -> -(Dy’+Sy) +-(Dy’+Sy) -> Mass -> -1/m*(Dy’+Sy)=y’’ + +OPERATION DIVISION +MODE REPEAT +OP-TIME 80ms